﻿--发票绑定过多后不能保存进去，如是将原来字段长度由200改为800
alter table dbo.instorebilldtl alter column InvoiceNoList varchar(800)
alter table dbo.instorebilldtlhistory alter column InvoiceNoList varchar(800)



--drop table StockTacking
create table StockTacking  --盘库单主表
(
	StockTackingNo				VARCHAR(36)  not null,--盘库单主表单据号码
	StockTackingCustomNo VARCHAR(36)  ,--盘库单主表自定义单据号码
	StockTackingTime			datetime  default getdate(),--盘库单日期
	StockTackingYearMonth		VARCHAR(100)  ,--盘库单年月
	StockTackingDesc		VARCHAR(100)  ,--盘库说明
	StockTackingUserID				VARCHAR(20) default '',
	StockTackingUserName			VARCHAR(20) default '',
	Remark							VARCHAR(200)  ,--备注
	CreateUserID					VARCHAR(20) default '',
	CreateUserName				VARCHAR(20) default '',
	UpdateUserID					VARCHAR(20) default '',
	UpdateUserName			VARCHAR(20) default '',
	UpdateTime					datetime  default getdate(),
	CreateTime						datetime  default getdate(),
	ExtDateTime1					datetime,
	ExtDateTime2					datetime,
	ExtDateTime3					datetime,
	ExtDateTime4					datetime,
	ExtVarChar1						VARCHAR(50) default '',
	ExtVarChar2						 VARCHAR(50) default '',
	ExtVarChar3						VARCHAR(50) default '',
	ExtVarChar4						VARCHAR(50) default '',
    ExtNumeric1						numeric(16,4),
	ExtNumeric2						numeric(16,4),
	ExtNumeric3						numeric(16,4),
	ExtNumeric4						numeric(16,4),
	ISVALID							CHAR(1) default '1',--是否有效
	primary key(StockTackingNo)
)
go


--drop table StockTackingDtl
create table StockTackingDtl  --盘库单明细表
(
	StockTackingDtlNo			VARCHAR(36)  not null,--盘库单明细编号
	StockTackingNo				VARCHAR(36)  not null,--盘库单主表单据号码
	NewGoodsCode         VARCHAR(50) default '',--新的物料代码
	NewGoodsName		   VARCHAR(100) default '',--新的物料名称
	OldGoodsCode         VARCHAR(50) default '',--老的物料代码
	StockQuantity					numeric(16,2),--库存数量
	StockTackingQuantity		numeric(16,2),--盘库数量
	HandleResult					VARCHAR(20)  ,--处理方式：入库，出库
	HandleRelateNoteNo		VARCHAR(50)  ,--处理关联单据号码，入库单，出库单
	HandleTime						datetime  ,--处理时间
	Remark							VARCHAR(200)  ,--备注
	CreateUserID					VARCHAR(20) default '',
	CreateUserName				VARCHAR(20) default '',
	UpdateUserID					VARCHAR(20) default '',
	UpdateUserName			VARCHAR(20) default '',
	UpdateTime					datetime  default getdate(),
	CreateTime						datetime  default getdate(),
	ExtDateTime1					datetime,
	ExtDateTime2					datetime,
	ExtDateTime3					datetime,
	ExtDateTime4					datetime,
	ExtVarChar1						VARCHAR(50) default '',
	ExtVarChar2						 VARCHAR(50) default '',
	ExtVarChar3						VARCHAR(50) default '',
	ExtVarChar4						VARCHAR(50) default '',
    ExtNumeric1						numeric(16,4),--已经出库数量2011-03-09
	ExtNumeric2						numeric(16,4),
	ExtNumeric3						numeric(16,4),
	ExtNumeric4						numeric(16,4),
	ISVALID							CHAR(1) default '1',--是否有效
	primary key(StockTackingDtlNo)
)
go

--drop table StockTackingHistory
create table StockTackingHistory  --盘库单主表历史记录
(
	AutoID			   int Identity,
	StockTackingNo				VARCHAR(36)  not null,--盘库单主表单据号码
	StockTackingCustomNo VARCHAR(36)  ,--盘库单主表自定义单据号码
	StockTackingTime			datetime  default getdate(),--盘库单日期
	StockTackingYearMonth		VARCHAR(100)  ,--盘库单年月
	StockTackingDesc		VARCHAR(100)  ,--盘库说明
	StockTackingUserID				VARCHAR(20) default '',
	StockTackingUserName			VARCHAR(20) default '',
	Remark							VARCHAR(200)  ,--备注
	CreateUserID					VARCHAR(20) default '',
	CreateUserName				VARCHAR(20) default '',
	UpdateUserID					VARCHAR(20) default '',
	UpdateUserName			VARCHAR(20) default '',
	UpdateTime					datetime  default getdate(),
	CreateTime						datetime  default getdate(),
	ExtDateTime1					datetime,
	ExtDateTime2					datetime,
	ExtDateTime3					datetime,
	ExtDateTime4					datetime,
	ExtVarChar1						VARCHAR(50) default '',
	ExtVarChar2						 VARCHAR(50) default '',
	ExtVarChar3						VARCHAR(50) default '',
	ExtVarChar4						VARCHAR(50) default '',
    ExtNumeric1						numeric(16,4),
	ExtNumeric2						numeric(16,4),
	ExtNumeric3						numeric(16,4),
	ExtNumeric4						numeric(16,4),
	ISVALID							CHAR(1) default '1',--是否有效
	primary key(AutoID)
)
go


--drop table StockTackingDtlHistory
create table StockTackingDtlHistory  --盘库单明细表历史记录
(
	AutoID			   int Identity,
	StockTackingDtlNo			VARCHAR(36)  not null,--盘库单主表单据号码
	StockTackingNo				VARCHAR(36)  not null,--盘库单主表单据号码
	NewGoodsCode         VARCHAR(50) default '',--新的物料代码
	NewGoodsName		   VARCHAR(100) default '',--新的物料名称
	OldGoodsCode         VARCHAR(50) default '',--老的物料代码
	StockQuantity					numeric(16,2),--库存数量
	StockTackingQuantity		numeric(16,2),--盘库数量
	HandleResult					VARCHAR(20)  ,--处理方式：入库，出库
	HandleRelateNoteNo		VARCHAR(50)  ,--处理关联单据号码，入库单，出库单
	HandleTime						datetime  ,--处理时间
	Remark							VARCHAR(200)  ,--备注
	CreateUserID					VARCHAR(20) default '',
	CreateUserName				VARCHAR(20) default '',
	UpdateUserID					VARCHAR(20) default '',
	UpdateUserName			VARCHAR(20) default '',
	UpdateTime					datetime  default getdate(),
	CreateTime						datetime  default getdate(),
	ExtDateTime1					datetime,
	ExtDateTime2					datetime,
	ExtDateTime3					datetime,
	ExtDateTime4					datetime,
	ExtVarChar1						VARCHAR(50) default '',
	ExtVarChar2						 VARCHAR(50) default '',
	ExtVarChar3						VARCHAR(50) default '',
	ExtVarChar4						VARCHAR(50) default '',
    ExtNumeric1						numeric(16,4),
	ExtNumeric2						numeric(16,4),
	ExtNumeric3						numeric(16,4),
	ExtNumeric4						numeric(16,4),
	ISVALID							CHAR(1) default '1',--是否有效
	primary key(AutoID)
)
go

--drop FUNCTION GetStockTackingNo 
CREATE FUNCTION GetStockTackingNo ()
    RETURNS VARCHAR(10)
AS
BEGIN
	declare @date DATETIME;
   declare @prix varchar(7);
   declare  @maxID  int;
   declare  @result varchar(10);
   select @date=dt FROM VGetDate;
   set @prix = CONVERT(char(7),@date,120);
   set @prix = 'P'+substring(@prix,3,7) + '-';
   select @maxID = isnull(MAX(substring(StockTackingNo,8,3)),0) + 1 from dbo.StockTacking 
 where StockTackingNo like @prix+'%';
	set @result = @prix + right('00' +  convert(varchar(3),@maxID),3);
	return @result;
END
go